<template>
  <div class="model-form">
    <el-page-header @back="goBack" content="更新角色">
    </el-page-header>
    <div class="model-content">
      <el-form ref="ruleForm" :rules="rules" :model="form" label-width="160px">
        <el-row :gutter="10">
          <el-col :span="13">
            <el-form-item label="角色名" size="mini" prop="name">
              <el-input v-model="form.name" name="name">
              </el-input>
            </el-form-item>

          </el-col>
          <el-col :span="13">
            <el-form-item label="角色别名" size="mini" prop="alias">
              <el-input v-model="form.alias" name="alias">
              </el-input>
            </el-form-item>

          </el-col>
          <el-col :span="13">
            <el-form-item label="排序号" size="mini" prop="sortNum">
              <el-input-number v-model="form.sortNum" name="sortNum" type="textarea" :min="0"
                               :max="100"></el-input-number>
            </el-form-item>

          </el-col>
          <el-col :span="13">
            <el-form-item label="角色描述" size="mini" prop="description">
              <el-input v-model="form.description" name="description" type="textarea"></el-input>
            </el-form-item>

          </el-col>
          <el-col :span="13">
            <el-form-item label="权限" size="mini">
              <el-tree :data="treeData" ref="tree"  show-checkbox  check-strictly empty-text=""
                       node-key="permission" :default-checked-keys="form.authorities">
              </el-tree>
            </el-form-item>
          </el-col>
          <el-col :span="13">
            <el-form-item>
              <el-button @click="goBack">取消</el-button>
              <el-button type="primary" @click="updateData">确定</el-button>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </div>
  </div>
</template>

<script>

import common from "@/mixins/common.js";

export default {
  name: "tenantuserrole_update",
  mixins: [common],
  components: {},
  data() {
    return {
      form: {
        name: '',
        alias: '',
        sortNum: '',
        description: ''
      },
      treeData: [],
      rules: {
        name: [
          {required: true, message: '请输入角色名', trigger: 'blur'}
        ],
      }
    }
  },
  async mounted() {
    let id = this.$route.query.id;
    let data = {};
    data.id = id;
    let res = await this.$http.form("/tenantRest/tenantuserrole/view.htm", data);
    if (res.code === 0) {
      this.form = res;
    }


    const params = {};
    params.size = 100;
    params.level = 1;
    params.fetch = 1;
    params.sortField = "sortNum";
    params.sortMethod = "asc";
    params.key="ego5";
    let menus =   await this.$http.form("/tenantRest/applicationmenu/list.htm", params);
    if (menus.code===0){
      this.treeData = menus.list;
    }
  },
  methods: {
    async updateData() {
      let res = await this.$refs["ruleForm"].validate();
      if (!res) {
        return;
      }
      await this.updateDataPost();
    },
    async updateDataPost() {

      let checkedKeys = this.$refs.tree.getCheckedKeys().concat(this.$refs.tree.getHalfCheckedKeys());
      console.info(checkedKeys)

      this.form.authorities = checkedKeys;

      let res = await this.$http.post("/tenantRest/tenantuserrole/updateJson.htm", this.form);
      if (res.code !== 0) {
        this.$message.error(res.msg);
        return
      }
      this.$message({
        message: '更新数据成功',
        type: 'success'
      });
      this.$router.go(-1);
    },

  }
}


</script>

<style scoped>

</style>